home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / tex / inputs / iso9.sty < prev    next >
Encoding:
Text File  |  1991-05-21  |  15.7 KB  |  383 lines

  1. % ISO DOCUMENT STYLE <17 Oct 88>
  2. %    for LaTeX version 2.09
  3.  
  4. % @(#)iso9.sty    1.15 dated 88/10/19 at 13:46:58
  5.  
  6. % This file is based on Leslie Lamport's art10.doc.
  7.  
  8. %  ****************************************
  9. %  *               FONTS                  *
  10. %  ****************************************
  11. %
  12.  
  13. \lineskip 1pt            % \lineskip is 1pt for all font sizes.
  14. \normallineskip 1pt
  15. \def\baselinestretch{1}
  16.  
  17. % Each size-changing command \SIZE executes the command
  18. %        \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE
  19. % where:
  20. %   BASELINESKIP = Normal value of \baselineskip for that size.  (Actual 
  21. %                  value will be \baselinestretch * BASELINESKIP.)
  22. %
  23. %  \FONTSIZE     = Name of font-size command.  The currently available
  24. %                  (preloaded) font sizes are: \vpt (5pt), \vipt (6pt),
  25. %                  \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt,
  26. %                  \xivpt, \xviipt, \xxpt, \xxvpt.
  27. %  \@FONTSIZE    = The same as the font-size command except with an
  28. %                  '@' in front---e.g., if \FONTSIZE = \xivpt then
  29. %                  \@FONTSIZE = \@xivpt.
  30. %
  31. % For reasons of efficiency that needn't concern the designer,
  32. % the document style defines \@normalsize instead of \normalsize .  This is
  33. % done only for \normalsize, not for any other size-changing commands.
  34.  
  35. \def\@normalsize{\@setsize\normalsize{10pt}\ixpt\@ixpt
  36. \abovedisplayskip 10pt plus2pt minus5pt%
  37. \belowdisplayskip \abovedisplayskip
  38. \abovedisplayshortskip  \z@ plus3pt%   
  39. \belowdisplayshortskip  6pt plus3pt minus3pt}
  40.  
  41. \def\small{\@setsize\small{9pt}\viiipt\@viiipt
  42. \abovedisplayskip 8.5pt plus 3pt minus 4pt%
  43. \belowdisplayskip \abovedisplayskip
  44. \abovedisplayshortskip \z@ plus2pt%
  45. \belowdisplayshortskip 4pt plus2pt minus 2pt
  46. \def\@listi{\topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt
  47. \itemindent\leftmargini\itemsep \parsep}}
  48.  
  49. \def\footnotesize{\@setsize\footnotesize{9pt}\viiipt\@viiipt
  50. \abovedisplayskip 6pt plus 2pt minus 4pt%
  51. \belowdisplayskip \abovedisplayskip
  52. \abovedisplayshortskip \z@ plus 1pt%
  53. \belowdisplayshortskip 3pt plus 1pt minus 2pt
  54. \def\@listi{\topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt
  55. \itemindent\leftmargini\itemsep \parsep}}
  56.  
  57. \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
  58. \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
  59. \def\large{\@setsize\large{11pt}\xpt\@xpt}
  60. \def\Large{\@setsize\Large{12pt}\xipt\@xipt}
  61. \def\LARGE{\@setsize\LARGE{20pt}\xviipt\@xviipt}
  62. \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
  63. \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
  64.  
  65. \normalsize  % Choose the normalsize font.
  66.  
  67.  
  68. %  ****************************************
  69. %  *            PAGE LAYOUT               *
  70. %  ****************************************
  71. %
  72. % All margin dimensions measured from a point one inch from top and side
  73. % of page.  
  74.  
  75. % SIDE MARGINS:
  76. \if@twoside                 % Values for two-sided printing (the default):
  77.    \oddsidemargin  -32pt    %   Left margin on odd-numbered pages.
  78.    \evensidemargin -32pt    %   Left margin on even-numbered pages.
  79.    \marginparwidth 107pt    %   Width of marginal notes (none in BSI standards).
  80. \else                       % Values for one-sided printing:
  81.    \oddsidemargin  -23pt    %   Note that \oddsidemargin = \evensidemargin
  82.    \evensidemargin -23pt
  83.    \marginparwidth 90pt 
  84. \fi
  85. \marginparsep 11pt          % Horizontal space between outer margin and 
  86.                             % marginal note
  87.  
  88.  
  89. % VERTICAL SPACING:        
  90.                          % Top of page:
  91. \topmargin -54pt         %    Nominal distance from top of page to top of
  92.                          %    box containing running head.
  93. \headheight 25pt         %    Height of box containing running head.
  94. \headsep 39pt            %    Space between running head and text.
  95. % \topskip = 10pt        %    '\baselineskip' for first line of page.
  96.                          % Bottom of page:
  97. \footskip 27pt           %    Distance from baseline of box containing foot 
  98.                          %    to baseline of last line of text.
  99.  
  100.  
  101. % DIMENSION OF TEXT:
  102.  
  103. \textheight 240mm
  104. \textwidth 180mm         % Width of text line.
  105.                          % For two-column mode: 
  106. \columnsep 10mm          %    Space between columns 
  107. \columnseprule 0pt       %    Width of rule between columns.
  108.  
  109. % A \raggedbottom command causes 'ragged bottom' pages: pages set to
  110. % natural height instead of being stretched to exactly \textheight.
  111.  
  112. % FOOTNOTES:
  113.  
  114. \footnotesep 6.65pt   % Height of strut placed at the beginning of every
  115.                       % footnote = height of normal \footnotesize strut,
  116.                       % so no extra space between footnotes.
  117.  
  118. \skip\footins 9pt plus 4pt minus 2pt  % Space between last line of text and 
  119.                                       % top of first footnote.
  120.  
  121. % FLOATS: (a float is something like a figure or table)
  122. %
  123. % NDN: I haven't changed the float parameters for the iso style
  124. %
  125. %  FOR FLOATS ON A TEXT PAGE:
  126. %
  127. %    ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
  128. \floatsep 12pt plus 2pt minus 2pt        % Space between adjacent floats moved
  129.                                          % to top or bottom of text page.
  130. \textfloatsep 20pt plus 2pt minus 4pt    % Space between main text and floats
  131.                                          % at top or bottom of page.
  132. \intextsep 12pt plus 2pt minus 2pt       % Space between in-text figures and 
  133.                                          % text.
  134. \@maxsep 20pt                            % The maximum of \floatsep, 
  135.                                          % \textfloatsep and \intextsep (minus
  136.                                          % the stretch and shrink).
  137. %    TWO-COLUMN FLOATS IN TWO-COLUMN MODE:
  138. \dblfloatsep 12pt plus 2pt minus 2pt     % Same as \floatsep for double-column
  139.                                          % figures in two-column mode.
  140. \dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for double-column 
  141.                                          % floats.
  142. \@dblmaxsep 20pt                         % The maximum of \dblfloatsep and 
  143.                                          % \dbltexfloatsep.
  144.  
  145. %  FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN:
  146. %    ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
  147. \@fptop 0pt plus 1fil    % Stretch at top of float page/column. (Must be    
  148.                          % 0pt plus ...)                                    
  149. \@fpsep 8pt plus 2fil    % Space between floats on float page/column.       
  150. \@fpbot 0pt plus 1fil    % Stretch at bottom of float page/column. (Must be 
  151.                          % 0pt plus ... )                                   
  152.  
  153. %   DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE.
  154. \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...)
  155. \@dblfpsep 8pt plus 2fil % Space between floats on float page.
  156. \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be 
  157.                          % 0pt plus ... )                                   
  158. % MARGINAL NOTES:
  159. %
  160. \marginparpush 5pt       % Minimum vertical separation between two marginal 
  161.                          % notes.
  162.  
  163.  
  164. %  ****************************************
  165. %  *           PARAGRAPHING               *
  166. %  ****************************************
  167. %
  168. \parskip \baselineskip             % Extra vertical space between paragraphs.
  169. \parindent 0pt                     % Width of paragraph indentation.
  170. \topsep 0pt plus 1pt minus 1pt     % Extra vertical space, in addition to 
  171.                                    % \parskip, added above and below list and
  172.                                    % paragraphing environments.
  173. \partopsep 2pt plus 1pt minus 1pt  % Extra vertical space, in addition to 
  174.                                    % \parskip and \topsep, added when user
  175.                                    % leaves blank line before environment.
  176. \itemsep 2pt plus 1pt minus 1pt    % Extra vertical space, in addition to
  177.                                    % \parskip, added between list items.
  178.  
  179. % The following page-breaking penalties are defined
  180. % NDN: unchanged from art10.doc
  181.  
  182. \@lowpenalty   51      % Produced by \nopagebreak[1] or \nolinebreak[1]
  183. \@medpenalty  151      % Produced by \nopagebreak[2] or \nolinebreak[2]
  184. \@highpenalty 301      % Produced by \nopagebreak[3] or \nolinebreak[3]
  185.  
  186. \@beginparpenalty -\@lowpenalty    % Before a list or paragraph environment.
  187. \@endparpenalty   -\@lowpenalty    % After a list or paragraph environment.
  188. \@itempenalty     -\@lowpenalty    % Between list items.
  189.  
  190. % \clubpenalty         % 'Club line'  at bottom of page.
  191. % \widowpenalty        % 'Widow line' at top of page.
  192. % \displaywidowpenalty % Math display widow line.
  193. % \predisplaypenalty   % Breaking before a math display.
  194. % \postdisplaypenalty  % Breaking after a math display.
  195. % \interlinepenalty    % Breaking at a line within a paragraph.
  196. % \brokenpenalty       % Breaking after a hyphenated line.
  197.  
  198.  
  199. %    ****************************************
  200. %    *             SECTIONS                 *
  201. %    ****************************************
  202. %
  203.  
  204. % NDN: note that section names have changed from the usual LaTeX ones.
  205.  
  206. % \secdef{UNSTARCMDS}{STARCMDS} :
  207. %    When defining a sectionioning command without using
  208. %    \@startsection, you can use \secdef as follows:
  209. %       \def\part { ... \secdef \CMDA \CMDB }
  210. %       \def\CMDA  [#1]#2{ ... }     % Command to define \part[...]{...}
  211. %       \def\CMDB  #1{ ... }         % Command to define \part*{...}
  212.  
  213. % NDN: I haven't considered parts for the iso style yet, so this is just
  214. % as in art10.doc.
  215. \def\part{\par               % New paragraph
  216.    \addvspace{4ex}           % Adds vertical space above title.
  217.    \@afterindentfalse        % Suppresses indent in first paragraph.  Change
  218.    \secdef\@part\@spart}     % to \@afterindenttrue to have indent.
  219.  
  220. \def\@part[#1]#2{\ifnum \c@secnumdepth >\m@ne    % IF secnumdepth > -1
  221.         \refstepcounter{part}                    %  THEN step part counter
  222.         \addcontentsline{toc}{part}{\thepart     %       add toc line
  223.         \hspace{1em}#1}\else                     %  ELSE add unnumbered line
  224.       \addcontentsline{toc}{part}{#1}\fi         % FI
  225.    { \parindent 0pt \raggedright 
  226.     \ifnum \c@secnumdepth >\m@ne   % IF secnumdepth > -1 
  227.       \Large \bf Part \thepart     %   THEN Print 'Part' and 
  228.       \par \nobreak                %          number in \Large boldface.
  229.     \fi                            % FI
  230.     \huge \bf                      % Select \huge boldface.
  231.     #2\markboth{}{}\par }          % Print title and set heading marks null.
  232.     \nobreak                       % TeX penalty to prevent page break.
  233.     \vskip 3ex                     % Space between title and text.
  234.    \@afterheading                  % Routine called after part and
  235.     }                              %     section heading.
  236.  
  237. % Heading for \part* command
  238. \def\@spart#1{{\parindent 0pt \raggedright 
  239.     \huge \bf                       
  240.     #1\par}                         % Title.
  241.     \nobreak                        % TeX penalty to prevent page break.
  242.     \vskip 3ex                      % Space between title and text.
  243.     \@afterheading                  % Routine called after part and
  244.   }                                 %     section heading.
  245.  
  246. % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} 
  247. %            optional * [ALTHEADING]{HEADING}
  248. %    Generic command to start a section.  
  249. %    NAME       : e.g., 'clause'
  250. %    LEVEL      : a number, denoting depth of section -- i.e., section=1,
  251. %                 clause = 2, etc.  A section number will be printed if
  252. %                 and only if LEVEL < or = the value of the secnumdepth
  253. %                 counter.
  254. %    INDENT     : Indentation of heading from left margin
  255. %    BEFORESKIP : Absolute value = skip to leave above the heading.  
  256. %                 If negative, then paragraph indent of text following 
  257. %                 heading is suppressed.
  258. %    AFTERSKIP  : if positive, then skip to leave below heading,
  259. %                       else - skip to leave to right of run-in heading.
  260. %    STYLE      : commands to set style
  261. %  If '*' missing, then increments the counter.  If it is present, then
  262. %  there should be no [ALTHEADING] argument.  A sectioning command
  263. %  is normally defined to \@startsection + its first six arguments.
  264.  
  265. % A definition needs to set its number and title in
  266. %  different sizes so it manipulates its argument before passing it on
  267. %  to \@startsection.
  268.  
  269. % These spacings are provisional only.
  270.  
  271. \def\section{\@startsection {section}{1}{\z@}{3ex plus 1ex minus 
  272.     .2ex}{.1ex plus .1ex}{\Large\bf}}
  273. \def\clause{\@startsection{clause}{2}{\z@}{2ex plus .5ex minus
  274.    .2ex}{.1ex plus .1ex}{\large\bf}}
  275. \def\definition#1{\@startsection{definition}{2}{\z@}{2ex plus .5ex minus
  276.    .2ex}{-.5em plus -.1em minus -.1em}{\large\bf}
  277.    {\protect{\normalsize\bf#1:\thinspace}}}
  278. \def\subclause{\@startsection{subclause}{3}{\z@}{2ex plus 1ex minus
  279.    .2ex}{.1ex plus .1ex}{\normalsize\bf}}
  280. \def\subsubclause{\@startsection
  281.      {subsubclause}{4}{\z@}{2ex plus 1ex minus .2ex}{.1ex plus .1ex}
  282.      {\normalsize\bf}}
  283. \def\namelesssubsubclause{\@startsection{namelesssubsubclause}{4}{\z@}{
  284.      2ex plus 1ex minus .2ex}{-.5em plus -.1em minus -.1em}{\normalsize\bf}{}}
  285. \def\subsubsubclause{\@startsection
  286.      {subsubsubclause}{5}{\parindent}{2ex plus 1ex minus 
  287.      .2ex}{.1ex plus .1ex}{\normalsize\bf}}
  288. \def\namelesssubsubsubclause{\@startsection{namelesssubsubsubclause}{5}{\z@}{
  289.      2ex plus 1ex minus .2ex}{-.5em plus -.1em minus -.1em}{\normalsize\bf}{}}
  290.  
  291.  
  292. % Default initializations of \...mark commands.  (See below for their
  293. % use in defining page styles.
  294. %
  295.  
  296. \def\sectionmark#1{}           % Preloaded definitions
  297. \def\clausemark#1{}
  298. \def\definitionmark#1{}
  299. \def\subclausemark#1{}
  300. \def\subsubclausemark#1{}
  301. \def\namelesssubsubclausemark#1{}
  302. \def\subsubsubclausemark#1{}
  303. \def\namelesssubsubsubclausemark#1{}
  304.  
  305. % The value of the counter secnumdepth gives the depth of the
  306. % highest-level sectioning command that is to produce section numbers.
  307. %
  308.  
  309. \setcounter{secnumdepth}{5}
  310.  
  311. % ANNEX
  312. %
  313. % The \annex command must do the following:
  314. %    -- add an `Annexes' heading to the table of contents
  315. %    -- reset the section and clause counters to zero
  316. %    -- redefine the section counter to produce appendix numbers
  317. %    -- redefine the \section command if appendix titles and headings are
  318. %       to look different from section titles and headings.
  319.  
  320. \def\annex{\par
  321.   \addtocontents{toc}{\protect{\section*{Annexes}}}
  322.   \setcounter{section}{0}
  323.   \setcounter{clause}{0}
  324.   \def\thesection{\Alph{section}}
  325.   \def\section{\clearpage\@startsection {section}{1}{\z@}{3ex plus 1ex minus 
  326.     .2ex}{.1ex plus .1ex}{\Large\bf}}}
  327.  
  328.  
  329. %    ****************************************
  330. %    *                LISTS                 *
  331. %    ****************************************
  332. %
  333.  
  334. % The following commands are used to set the default values for the list
  335. % environment's parameters. See the LaTeX manual for an explanation of
  336. % the meanings of the parameters.  Defaults for the list environment are
  337. % set as follows.  First, \rightmargin, \listparindent and \itemindent
  338. % are set to 0pt.  Then, for a Kth level list, the command \@listK is
  339. % called, where 'K' denotes 'i', 'ii', ... , 'vi'.  (I.e., \@listiii is
  340. % called for a third-level list.)  By convention, \@listK should set
  341. % \leftmargin to \leftmarginK.
  342.  
  343. \leftmargini 1em
  344. \leftmarginii 1em
  345. \leftmarginiii 1em
  346. \leftmarginiv 1em
  347. \leftmarginv 1em
  348. \leftmarginvi 1em
  349.  
  350. \leftmargin\leftmargini
  351. \labelsep 1em
  352. \labelwidth 0pt
  353. \parsep 4pt plus 2pt minus 1pt
  354.  
  355. \def\@listi{\leftmargin\leftmargini
  356.    \itemindent\leftmargini}
  357.  
  358. \def\@listii{\leftmargin\leftmarginii
  359.    \itemindent\leftmarginii
  360.    \topsep 4pt plus 2pt minus 1pt
  361.    \parsep 2pt plus 1pt minus 1pt
  362.    \itemsep \parsep}
  363.  
  364. \def\@listiii{\leftmargin\leftmarginiii
  365.     \itemindent\leftmarginiii
  366.     \topsep 2pt plus 1pt minus 1pt 
  367.     \parsep \z@ \partopsep 1pt plus 0pt minus 1pt
  368.     \itemsep \topsep}
  369.  
  370. \def\@listiv{\leftmargin\leftmarginiv
  371.      \itemindent\leftmarginiv}
  372.  
  373. \def\@listv{\leftmargin\leftmarginv
  374.      \itemindent\leftmarginv}
  375.  
  376. \def\@listvi{\leftmargin\leftmarginvi
  377.      \itemindent\leftmarginvi}
  378.  
  379.  
  380.  
  381.  
  382.  
  383.